4b515f3fbc2d0dc2bfa2bc6986e1b73a20aff5e2,src/main/java/com/ryanharter/autogson/AutoGsonExtension.java,AutoGsonExtension,createSerializer,#String#String#Map#,91
Before Change
FieldSpec createSerializer(String className, String classToExtend, Map<String, TypeName> properties) {
ClassName annotatedClass = ClassName.bestGuess(classToExtend);
String annotatedParamName = annotatedClass.simpleName().toLowerCase();
ClassName serializerType = ClassName.get(JsonSerializer.class);
ParameterizedTypeName jsonSerializer = ParameterizedTypeName.get(serializerType, annotatedClass);
TypeSpec.Builder serializerImpl = TypeSpec.anonymousClassBuilder("")
After Change
FieldSpec gsonField = FieldSpec.builder(Gson.class, "gson").build();
String customTypeAdapterClass = String.format("%sTypeAdapter", annotatedClass.simpleName());
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(customTypeAdapterClass)
.addModifiers(PUBLIC, STATIC, FINAL)
.superclass(superClass)
.addField(gsonField)
.addMethod(MethodSpec.constructorBuilder()
.addModifiers(PUBLIC)
.addParameter(Gson.class, "gson")
.addStatement("this.$N = gson", gsonField)
.build()
)
.addMethod(createWriteMethod(gsonField, autoValueClassName, properties))
.addMethod(createReadMethod(gsonField, className, autoValueClassName, properties));